/**
 * @file wa_mask_draw.h
 * 
 */


#ifndef _WA_MASK_DRAW_H
#define _WA_MASK_DRAW_H

#ifdef __cplusplus
extern "C" {
#endif

/*********************
 *      INCLUDES
 *********************/
#include "wa_conf.h"
#include <string.h>
#include <stddef.h>
#include <stdbool.h>
#include <stdint.h>
#include "wa_misc.h"
#include "wa_area.h"
#include "wa_disp_drv.h"
#include "wa_font.h"
#include "wa_image.h"
/*********************
 *      DEFINES
 *********************/

/**********************
 *      TYPEDEFS
 **********************/
 
/**********************
 * GLOBAL PROTOTYPES
 **********************/

typedef enum
{
	WA_MASK_DRAW_TRIA_LEFT,
	WA_MASK_DRAW_TRIA_RIGHT,
	WA_MASK_DRAW_TRIA_UP,
	WA_MASK_DRAW_TRIA_DOWN,
}wa_mask_draw_triangle_dir;
 
void wa_mask_drawpoint(int x, int y, wa_area* mask_p, wa_gui_color color);
void wa_mask_fillrect(int x, int y, int width, int height, wa_area* mask_p, wa_gui_color color);
void wa_mask_clear(void);
void wa_mask_update(int32_t x, int32_t y, int32_t width, int32_t height);
void wa_mask_drawline(int x1, int y1,int x2, int y2, wa_area* mask_p,wa_gui_color color);
void wa_mask_drawrect(int x1, int y1, int width, int height, wa_area* mask_p, wa_gui_color color);
void wa_mask_drawpolygon(wa_point* p_p, int count, wa_area* mask_p, wa_gui_color color);
void wa_mask_drawcircle(int x, int y, int r, wa_area* mask_p, wa_gui_color color);
void wa_mask_fillcircle(int x, int y, int r, wa_area* mask_p, wa_gui_color color);
void wa_mask_fillpolygon(wa_point* p_p, int count, wa_area* mask_p, wa_gui_color color);
void wa_mask_drawroundrect(int x1, int y1, int width, int height, int r, wa_area* mask_p, wa_gui_color color);
void wa_mask_fillroundrect(int x1, int y1, int width, int height, int r, wa_area* mask_p, wa_gui_color color);
void wa_mask_dispchar(int x, int y,uint32_t letter, wa_font* font_p, wa_area* mask_p, wa_gui_color color);
void wa_mask_drawtriangle(int x1, int y1, int width, int height, int dir, wa_area* mask_p, wa_gui_color color);
void wa_mask_filltriangle(int x1, int y1, int width, int height, int dir, wa_area* mask_p, wa_gui_color color);
void wa_mask_dispstr_1(wa_area* area_p, uint8_t* str, wa_font* font_p, uint8_t row_space, uint8_t col_space, wa_area* mask_p, wa_gui_color color);
void wa_mask_dispstr_2(wa_area* area_p, uint8_t* str, wa_font* font_p, uint8_t row_space, uint8_t col_space, wa_area* mask_p, wa_gui_color color);
void wa_mask_draw_bitmap(int x, int y, wa_bitmap* bitmap, wa_area* mask_p, wa_gui_color color);
void wa_mask_inverse_rect(int x1, int y1, int width, int height, wa_area* mask_p);
void wa_mask_inverse_roundrect(int x1, int y1, int width, int height, int r, wa_area* mask_p);

/**********************
 *      MACROS
 **********************/


#ifdef __cplusplus
} /* extern "C" */
#endif





#endif 


